3

git 本地新建分支,并上传到远程

git branch -a // 查看所有分支(本地分支以及远程分支)
git checkout -b 分支名字 // 在本地新建分支
git push --set-upstream origin 远程分支名 // 建立本地到远端仓库的链接

git 合并分支

git checkout test // 切换到test分支
git pull // 拉取远程代码
git merge origin/dev // 在本地test分支与远程dev分支合并
git push  // 将本地test分支代码解决冲突后提交到远程

git 日常提交代码

git status // 查看工作区代码相对于暂存区的差别
git add . // 将所有需改的文件放到暂存区
git commit -m "提交描述" // 将代码提交到本地仓库
git pull // 拉取远程代码
git push // 解决冲突,push到远程

代码提交到本地仓库,没有提交到远程时,可以使用git commit --amend
改写commit请求,将本次的提交与之前的提交合并为一个提交,减少不必要的提交说明,
使提交更加清晰,有利于后期管理

git log // 查看所有的提交
git clone 远程仓库ssh或者http地址 // 克隆项目

删除分支

git branch -d 分支名 // 删除时不能再要删除的分支进行删除分支操作,要在其他分支执行
git push origin :分支名 // 删除远程分支
git push origin --delete 分支名 // 删除远程分支

本地通过vue-cli 创建vue项目跟远程分支关联

本地
vue create 文件名

git remote add origin 远程分支地址
git remote -v // 查看是否关联成功
git pull origin master --allow-unrelated-histories // 强制关联
git push

本地远程分支与远程不一致时

git remote prune origin

该指令会删除本地远程没有的分支,与远程保持一致
本地的分支可以自己删除 git branch -D 分支名

关于Git提交优化问题

1.使用git commit --amend 将当前的提交与之前的一条commit合并为一个commit(没有push之前本地可以push之后不好使)

  1. 使用 git rebase -i 某一条提交的对应的唯一哈希串 可以合并选中的这个提交之后的所有提交合并为一个 将第一条的pick保留其他的pick修改为s 参考地址
pick e7ba81d Commit-1
pick 5756e15 Commit-2
pick b1b8189 Commit-3

修改为

pick e7ba81d Commit-1
s 5756e15 Commit-2
s b1b8189 Commit-3

squash:使用该 Commit,但会被合并到前一个 Commit 当中可以缩写为s
:wq保存进入下一步

# This is a combination of 3 commits.
# The first commit's message is:
Commit-1

# This is the 2nd commit message:

Commit-2

# This is the 3rd commit message:

Commit-3

把这几条的commit修改为一条的也就是当前这次合并的commit
:wq 保存就完成了将多条合并为一条提交了
前提是这些提交都没有push

使用commitizen 规范Git提交commit

npm install -g commitizen

npm: 
commitizen init cz-conventional-changelog --save-dev --save-exact

yarn:
commitizen init cz-conventional-changelog --yarn --dev --exact

之后package.json 中就会有

  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }

以后提交代码的时候就可以使用 git cz 代替 git commit

? Select the type of change that you're committing: (U
se arrow keys)
feat: 新功能(feature)
fix: 修复bug
docs: 文档
style: 格式(不影响代码运行的变动)
refactor: 重构(既不是新功能也不是修改bug)
test: 增加测试
chore: 构建过程或辅助工具的变动
perf: 提高性能的代码更改~~~~
? What is the scope of this change (e.g. component or
file name): (press enter to skip) 直接回车跳过就可以 用于说明commit影响的范围
? Write a short, imperative tense description of the c
hange (max 94 chars): 写自己当前提交的commit内容
? Provide a longer description of the change: (press e
nter to skip) 本次提交的详细描述可以分为多行
? Are there any breaking changes? No 询问有没有破坏性的提交直接N就可以
? Does this change affect any open issues? No 直接N就可以

菜鸟小N
32 声望1 粉丝